package com.neusoft.ch11.io;

import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;

public class FileReaderAndFileWriter {

	public static void main(String[] args) {
		test01();
	}

	private static void test01() {

		try {
			// 创建一个文件字节输入流对象
			FileReader fis = new FileReader("D:/temp/jvm/Hello.java");
			// 创建一个文件字节输入流对象
			// 构造方法的第二个参数，表示是从文件开头写如，还是从文件末尾写入：
			// true--接着末尾写；false--表示从开头写覆盖(会覆盖之前的全部内容)
			FileWriter fos = new FileWriter("D:/temp/jvm2/Hello_out2.java", false);
			// 创建一个获取输入流的临时变量（容器）
			char[] ch;
			// read返回值，是本次byte数据接收到的数据长度
			int len = -1; // -1文件流结束
			do {
				// 每次清空数组
				ch = new char[1024];
				// 读取输入流到字节数组中
				len = fis.read(ch);
				if (len > -1) {
					// 进行业务逻辑处理--当前是输出
					String str = new String(ch);
					// 输出
					System.out.print(str);
					// 使用输出流将输入流的内容输出到制定文件中
					fos.write(ch, 0, len);
				}
			} while (len != -1);
			System.out.println("文件读取和写出完毕。");
			// 关闭资源
			fis.close();
			fos.close();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

}
